The capabilities of the Internet for dissemination of data to and from various points on the Internet network are well established. For example, during point-to-point (xe2x80x9cunicastxe2x80x9d) communications over the Internet, a source workstation identified by a unique Internet address (xe2x80x9cIP addressxe2x80x9d) attempts to transmit data to a single destination workstation, identified by a unique destination IP address. The path traveled by the data over the network to reach the destination is determined based on network xe2x80x9cnodesxe2x80x9dxe2x80x94e.g., routers physically implemented in the network to transmit data. FIG. 1 illustrates a portion of a network 10 connecting a source workstation 12 and a destination workstation 20 for point-to-point communication. In this example, network nodes 14 establish a path 16 (denoted by arced vectors) for transmission of data between each workstation.
The Internet may also be used for dissemination of data from a single source to multiple destinations by what has been termed xe2x80x9cmulticasting.xe2x80x9d For example, a presentation at a particular location can be converted (via camera and microphone) into video and audio data streams, and the video and audio data may then be communicated over the network to various destination workstations at remote locations. Presently, the Internet includes facilities within the network to facilitate such multicast transmissions of data from a single source to multiple destinations. Network nodes may include specific hardware/software to handle the routing of multicast transmission data. One example of such facilities is referred to as the xe2x80x9cmulticast backbone,xe2x80x9d or xe2x80x9cMBONE.xe2x80x9d The MBONE permits data content (for example, audio and video data streams) to be routed over the Internet to multiple end-users which have xe2x80x9csubscribedxe2x80x9d to receive the data content. The network nodes operate to propagate the content to the correct end-user destinations.
FIG. 2 is a network diagram illustrating a portion of a network 30 implementing a prior art multicast transmission facility. A data source 32 is connected to the network 30 via a network node 40a (which is part of a collection of network nodes 40). Data source 32 provides a data stream, for example, digital video and audio signals produced by a camera and/or microphone used to record a presentation. Note that the data stream may be transmitted in compressed or otherwise encoded form in order to reduce the network bandwidth needed to transmit the data stream. For example, as depicted in FIG. 2, the data source 32 transmits the data stream containing digital audio compressed using the G.711 compression standard and having a bandwidth of approximately 8 Kbits/s, and digital video compressed using the H.261 compression standard and having a bandwidth of approximately 200 Kbits/s.
The data stream traverses the network 30 over paths 38 (as shown by the arced flow vectors). The node 40a coupled to the data source 32 is first to receive the multicast transmission data. The transmission from the data source 32 is identified as a multicast transmission, for example, by identifying the destination IP address for the transmission as an address that is specially allocated to indicate a multicast transmission. For example, as presently defined, multicast transmissions are indicated by xe2x80x9cclass Dxe2x80x9d destination IP addresses (in the IP address range 224.x.x.x to 229.x.x.x). Thus any data being sent to a destination IP address in this range will be recognized and treated as a multicast transmission.
Upon identification of the transmission as a multicast transmission, the node 40a accesses a database indicating the actual destination IP addresses for those end-users that have subscribed to receive the particular multicast transmission. Subscription may be achieved, for example, via messages using the Internet Group Management Protocol (xe2x80x9cIGMPxe2x80x9d), by an end-user sending an e-mail message to an appropriate authority to request inclusion in the multicast transmission table, or by other means. Once the destination addresses for those who have subscribed to the transmission have been resolved (in this example, end users 42) the node 40a replicates the data stream and transmits the data stream to those end-users 42 coupled to the node 40a. Furthermore, the node 40a routes the data stream to another node 40 for further replication and transmission to other end-users 42 who have subscribed to receive the multicast transmission. In this manner, the multicast transmission may traverse multiple paths 38, as shown in FIG. 2.
At any given time, several multicast transmissions may be in progress, the different multicast transmissions being distinguished, for example, by the different destination IP addresses that identify each transmission. Each multicast transmission may be described as a xe2x80x9cmulticast groupxe2x80x9d or xe2x80x9cmulticast channel.xe2x80x9d In order to allow users to select which multicast group to receive, a xe2x80x9cSession Description Protocolxe2x80x9d (SDP) message is sent over the network. The SDP message includes basic information about the multicast program, such as the title, time and location of various multicasts being provided over the network. The end-user may then xe2x80x9ctune inxe2x80x9d to the desired multicast group using the information provided by the SDP message. The SDP transmissions are typically low-bandwidth uncompressed messages which can be accessed by most contemporary workstations operating in conjunction with even low-bandwidth network connections.
Multicast facilities are particularly useful in transmitting xe2x80x9creal-timexe2x80x9d (i.e., live) audio/video signals to multiple end-users. This audio/video data may be transmitted, for example, using the xe2x80x9cReal time Transport Protocol,xe2x80x9d also known as RTP. The RTP sets the format for transmitting data comprising multimedia (audio and/or video) or other signals over a network where real-time access is desired. For example, the RTP specifies the provision of packet numbering, timestamping, and other information about the data being transmitted that is useful for real-time data transmissions and reception. A more detailed description of RTP is given in Schulzrinne et al., xe2x80x9cRTP: A Transport Protocol for Real-Time Applications,xe2x80x9d IETF Network Working Group RFC 1889, January 1996.
As part of the RTP, end-user workstations that receive an RTP transmission will respond periodically by transmitting an xe2x80x9cRTCPxe2x80x9d (Real-time Transport Control Protocol) message. The RTCP message is used for various functions, such as indicating who is xe2x80x9clisteningxe2x80x9d to the multicast transmission, and how well the transmission is being received. A more detailed description of RTCP is also given in the aforementioned Schulzrinne et al. reference.
Traditional multicast transmissions (and, in particular, transmissions over the MBONE) pose several problems for end-users, and particularly end-users that are part of a private network (e.g., a corporate network). The end-user equipment or private network interconnections that provide access to the user equipment may be unable to accommodate the bandwidth or decompression processing requirements of multicast data streams, thus preventing proper reception. For example, it is common in corporate networks that not every end-user have the same computer equipment or the same network connection, particularly in large networks. Another problem for private networks is that the content being provided via the multicast facilities of the Internet is not restricted or filtered, and also, unwanted/undesirable multicast transmissions may be accessible by end-users. Such unregulated access may cause network bandwidth problems that can severely degrade all network service. Furthermore, because multicast transmissions are received from outside the private network, multicast transmissions can serve as an access point for illegal entry into private networks.
According to the present invention, a multicast transmission gating system may be implemented. The multicast transmission gating system comprises a receiver to receive a multicast transmission in a predetermined coding format from a first network, as well as a transcoder to generate an alternate format transmission by converting the multicast transmission from the predetermined coding format into an alternate coding format. Control logic is provided to determine the alternate coding format. The multicast transmission gating system further comprises a transmitter to transmit the alternate format transmission to a second network.
A further embodiment of the multicast transmission gating system may also include logic to control the transmission of the alternate format transmission to at least one client connected to the second network. A further embodiment may also include logic to generate a description message for the alternate format transmission and transmit the description message to the second network. A further embodiment may also include a receiver to receive a client message from at least one client connected to the second network, and logic to allow the second network transmitter to transmit the alternate format transmission upon receipt of the client message. A further embodiment may also include firewall logic to prevent unauthorized access to the second network.